package baseclass.d_list;


import utils.ListNode;

/**
 * 注意：链表场合中，都比较简答，时间一般都是o(n)，所以主要是空间。
 * 空间如果是o(n)一般都简单，o(1)则较难
 * 打印两个有序链表的公共部分
 * 同merge外排的过程
 * 定义p1,p2比较，谁小谁移动，遇到相等则输出移动
 *
 * @date 2020/2/27 23:33
 */
public class Code01_CommonPart {

    public static void printCommonPart(ListNode head1, ListNode head2) {
        if (head1 == null || head2 == null) return;
        ListNode p1 = head1;
        ListNode p2 = head2;
        while (p1 != null && p2 != null) {
            if (p1.val < p2.val) {
                p1 = p1.next;
            } else if (p1.val > p2.val) {
                p2 = p2.next;
            } else {
                System.out.println(p1.val);
                p1 = p1.next;
                p2 = p2.next;
            }
        }
    }
}
